package day10;

// 密码强度等级判定
// 维度：长度、字母、数字、符号、奖励
// 单项值相加进行等级判断

import java.util.Scanner;

public class Main5 {
    // 等级判断
    private static void getRank(int sumScore) {
        if (sumScore >= 90) {
            System.out.println("VERY_SECURE");
        } else if(sumScore >=80) {
            System.out.println("SECURE");
        } else if(sumScore >= 70) {
            System.out.println("VERY_STRONG");
        } else  if(sumScore >= 60) {
            System.out.println("STRONG");
        } else if(sumScore >= 50) {
            System.out.println("AVERAGE");
        } else if(sumScore >= 25) {
            System.out.println("WEAK");
        } else {
            System.out.println("VERY_WEAK");
        }
    }

    // 长度分值
    private static int getLen(String password) {
        if(password.length() <= 4) {
            return 5;
        } else if (password.length()>=5 && password.length()<=7) {
            return 10;
        } else {
            return 25;
        }
    }

    // 字母分值:
    // 看是否为大小写字母，并且要看是否全为大/小，或者是混合
    // 此时就需要统计个数
    private static int getChar(String password) {
        int big = 0;
        int small = 0;
        // 遍历看每一个字符是否为字母：使用ASCII码值
        for (int i = 0; i < password.length(); i++) {
            if(password.charAt(i)>='a'&& password.charAt(i)<='z') {
                small++;
            } else if (password.charAt(i)>='A'&& password.charAt(i)<='Z') {
                big++;
            }
        }
        // 遍历完成后判断，然后进行统分
        if(small>0 && big>0) {
            return 20;
        } else if (small>0 || big>0) {
            return 10;
        } else {
            return 0;
        }
    }

    // 数字分值
    // 方法跟字母判断类似，同样要统计个数
    private static int getNum(String password) {
        int num = 0;
        for (int i = 0; i < password.length(); i++) {
            if(password.charAt(i)>='0' && password.charAt(i)<='9') {
                num++;
            }
        }
        if (num == 0) {
            return 0;
        } else if (num == 1) {
            return 10;
        } else {
            return 20;
        }
    }

    // 符号分值
    // 数字分值类似
    private static int getSymbol(String password) {
        int sym = 0;
        for (int i = 0; i < password.length(); i++) {
            char ch = password.charAt(i);
            if((ch>=33 && ch<=47) || (ch>=58 && ch<=64) ||
                    (ch>=91 && ch<=96) || (ch>=123 && ch<=126)) {
                sym++;
            }
        }
        if(sym == 0) {
            return 0;
        } else if(sym == 1) {
            return 10;
        } else {
            return 25;
        }
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            String password = in.next();
            // 进行奖励以及总分计算
            int charScore = getChar(password);
            int numScore = getNum(password);
            int symScore = getSymbol(password);
            int sumScore = getLen(password);

            if (symScore==0 && charScore!=0 && numScore!=0) { // 只有字母和数字
                sumScore += charScore + numScore + 2;
            } else if(charScore==20 && symScore!=0 && numScore!=0) { // 大小写字母、数字、符号
                sumScore += charScore + numScore + symScore + 5;
            } else if (charScore==10 && symScore!=0 && numScore!=0) {
                sumScore += charScore + numScore + symScore + 3;
            } else {
                sumScore += charScore + numScore + symScore;
            }

            // 进行等级判断
            getRank(sumScore);
        }
    }
}
